/*
 * @Author: HeAo
 * @Date: 2022-09-21 09:38:52
 * @LastEditTime: 2022-09-21 15:52:51
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \第二阶段\ES6\day07\1-类.ts
 * 别乱动！
 */
// 类
// es6 类是构造函数的另外一种写法
// 类是创建对象的模板 一个类可以创建多个对象 一个类可以创建多个对象
class Person {
  name: string;
  age: Number;
  weight?: number
  say(): void {
    console.log('普通话');
  }

}
// StudentClass继承 Person类   
class StudentClass extends Person {
  stuNo: String
  say(): void {
    console.log('高端话');
  }

}
// 纯粹对象 new出来的
let s1: Person = new StudentClass()
// 赋值
s1.age = 12
s1.name = 'zhangsan'
// s1.stuNo = '1002'
s1.say()
console.log(s1);

// 字面量模式 类型限制
// let s2: Student = {
//   stuNo: '1001',
//   name: 'zhangsan',
//   age: 12
  

// }

// 什么是多态？s1实例可以有使用Person类 也可以使用继承Person后的StudentClass类 所以s1是两种形态
// 重写 如果子类中方法签名与父类一致 则会对父类方法进行重写
// s1：只能使用父类的 属性和方法
// let s1: Person = new StudentClass()

// s1：可以使用父类和自身的属性和方法
// let s1: StudentClass = new StudentClass()

